/*
 * XML Type:  EClass
 * Namespace: http://www.eclipse.org/emf/2002/Ecore
 * Java type: org.eclipse.emf.x2002.ecore.EClass
 *
 * Automatically generated - do not modify.
 */
package org.eclipse.emf.x2002.ecore.impl;
/**
 * An XML EClass(@http://www.eclipse.org/emf/2002/Ecore).
 *
 * This is a complex type.
 */
public class EClassImpl extends org.eclipse.emf.x2002.ecore.impl.EClassifierImpl implements org.eclipse.emf.x2002.ecore.EClass
{
    private static final long serialVersionUID = 1L;
    
    public EClassImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName EOPERATIONS$0 = 
        new javax.xml.namespace.QName("", "eOperations");
    private static final javax.xml.namespace.QName ESTRUCTURALFEATURES$2 = 
        new javax.xml.namespace.QName("", "eStructuralFeatures");
    private static final javax.xml.namespace.QName ABSTRACT$4 = 
        new javax.xml.namespace.QName("", "abstract");
    private static final javax.xml.namespace.QName INTERFACE$6 = 
        new javax.xml.namespace.QName("", "interface");
    private static final javax.xml.namespace.QName ESUPERTYPES$8 = 
        new javax.xml.namespace.QName("", "eSuperTypes");
    private static final javax.xml.namespace.QName EALLATTRIBUTES$10 = 
        new javax.xml.namespace.QName("", "eAllAttributes");
    private static final javax.xml.namespace.QName EALLREFERENCES$12 = 
        new javax.xml.namespace.QName("", "eAllReferences");
    private static final javax.xml.namespace.QName EREFERENCES$14 = 
        new javax.xml.namespace.QName("", "eReferences");
    private static final javax.xml.namespace.QName EATTRIBUTES$16 = 
        new javax.xml.namespace.QName("", "eAttributes");
    private static final javax.xml.namespace.QName EALLCONTAINMENTS$18 = 
        new javax.xml.namespace.QName("", "eAllContainments");
    private static final javax.xml.namespace.QName EALLOPERATIONS$20 = 
        new javax.xml.namespace.QName("", "eAllOperations");
    private static final javax.xml.namespace.QName EALLSTRUCTURALFEATURES$22 = 
        new javax.xml.namespace.QName("", "eAllStructuralFeatures");
    private static final javax.xml.namespace.QName EALLSUPERTYPES$24 = 
        new javax.xml.namespace.QName("", "eAllSuperTypes");
    private static final javax.xml.namespace.QName EIDATTRIBUTE$26 = 
        new javax.xml.namespace.QName("", "eIDAttribute");
    
    
    /**
     * Gets array of all "eOperations" elements
     */
    public org.eclipse.emf.x2002.ecore.EOperation[] getEOperationsArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(EOPERATIONS$0, targetList);
            org.eclipse.emf.x2002.ecore.EOperation[] result = new org.eclipse.emf.x2002.ecore.EOperation[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "eOperations" element
     */
    public org.eclipse.emf.x2002.ecore.EOperation getEOperationsArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EOperation target = null;
            target = (org.eclipse.emf.x2002.ecore.EOperation)get_store().find_element_user(EOPERATIONS$0, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "eOperations" element
     */
    public int sizeOfEOperationsArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(EOPERATIONS$0);
        }
    }
    
    /**
     * Sets array of all "eOperations" element  WARNING: This method is not atomicaly synchronized.
     */
    public void setEOperationsArray(org.eclipse.emf.x2002.ecore.EOperation[] eOperationsArray)
    {
        check_orphaned();
        arraySetterHelper(eOperationsArray, EOPERATIONS$0);
    }
    
    /**
     * Sets ith "eOperations" element
     */
    public void setEOperationsArray(int i, org.eclipse.emf.x2002.ecore.EOperation eOperations)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EOperation target = null;
            target = (org.eclipse.emf.x2002.ecore.EOperation)get_store().find_element_user(EOPERATIONS$0, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(eOperations);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "eOperations" element
     */
    public org.eclipse.emf.x2002.ecore.EOperation insertNewEOperations(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EOperation target = null;
            target = (org.eclipse.emf.x2002.ecore.EOperation)get_store().insert_element_user(EOPERATIONS$0, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "eOperations" element
     */
    public org.eclipse.emf.x2002.ecore.EOperation addNewEOperations()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EOperation target = null;
            target = (org.eclipse.emf.x2002.ecore.EOperation)get_store().add_element_user(EOPERATIONS$0);
            return target;
        }
    }
    
    /**
     * Removes the ith "eOperations" element
     */
    public void removeEOperations(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(EOPERATIONS$0, i);
        }
    }
    
    /**
     * Gets array of all "eStructuralFeatures" elements
     */
    public org.eclipse.emf.x2002.ecore.EStructuralFeature[] getEStructuralFeaturesArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(ESTRUCTURALFEATURES$2, targetList);
            org.eclipse.emf.x2002.ecore.EStructuralFeature[] result = new org.eclipse.emf.x2002.ecore.EStructuralFeature[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "eStructuralFeatures" element
     */
    public org.eclipse.emf.x2002.ecore.EStructuralFeature getEStructuralFeaturesArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EStructuralFeature target = null;
            target = (org.eclipse.emf.x2002.ecore.EStructuralFeature)get_store().find_element_user(ESTRUCTURALFEATURES$2, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "eStructuralFeatures" element
     */
    public int sizeOfEStructuralFeaturesArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(ESTRUCTURALFEATURES$2);
        }
    }
    
    /**
     * Sets array of all "eStructuralFeatures" element  WARNING: This method is not atomicaly synchronized.
     */
    public void setEStructuralFeaturesArray(org.eclipse.emf.x2002.ecore.EStructuralFeature[] eStructuralFeaturesArray)
    {
        check_orphaned();
        arraySetterHelper(eStructuralFeaturesArray, ESTRUCTURALFEATURES$2);
    }
    
    /**
     * Sets ith "eStructuralFeatures" element
     */
    public void setEStructuralFeaturesArray(int i, org.eclipse.emf.x2002.ecore.EStructuralFeature eStructuralFeatures)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EStructuralFeature target = null;
            target = (org.eclipse.emf.x2002.ecore.EStructuralFeature)get_store().find_element_user(ESTRUCTURALFEATURES$2, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(eStructuralFeatures);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "eStructuralFeatures" element
     */
    public org.eclipse.emf.x2002.ecore.EStructuralFeature insertNewEStructuralFeatures(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EStructuralFeature target = null;
            target = (org.eclipse.emf.x2002.ecore.EStructuralFeature)get_store().insert_element_user(ESTRUCTURALFEATURES$2, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "eStructuralFeatures" element
     */
    public org.eclipse.emf.x2002.ecore.EStructuralFeature addNewEStructuralFeatures()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EStructuralFeature target = null;
            target = (org.eclipse.emf.x2002.ecore.EStructuralFeature)get_store().add_element_user(ESTRUCTURALFEATURES$2);
            return target;
        }
    }
    
    /**
     * Removes the ith "eStructuralFeatures" element
     */
    public void removeEStructuralFeatures(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(ESTRUCTURALFEATURES$2, i);
        }
    }
    
    /**
     * Gets the "abstract" attribute
     */
    public boolean getAbstract()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ABSTRACT$4);
            if (target == null)
            {
                return false;
            }
            return target.getBooleanValue();
        }
    }
    
    /**
     * Gets (as xml) the "abstract" attribute
     */
    public org.eclipse.emf.x2002.ecore.EBoolean xgetAbstract()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(ABSTRACT$4);
            return target;
        }
    }
    
    /**
     * True if has "abstract" attribute
     */
    public boolean isSetAbstract()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(ABSTRACT$4) != null;
        }
    }
    
    /**
     * Sets the "abstract" attribute
     */
    public void setAbstract(boolean xabstract)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ABSTRACT$4);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(ABSTRACT$4);
            }
            target.setBooleanValue(xabstract);
        }
    }
    
    /**
     * Sets (as xml) the "abstract" attribute
     */
    public void xsetAbstract(org.eclipse.emf.x2002.ecore.EBoolean xabstract)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(ABSTRACT$4);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().add_attribute_user(ABSTRACT$4);
            }
            target.set(xabstract);
        }
    }
    
    /**
     * Unsets the "abstract" attribute
     */
    public void unsetAbstract()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(ABSTRACT$4);
        }
    }
    
    /**
     * Gets the "interface" attribute
     */
    public boolean getInterface()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(INTERFACE$6);
            if (target == null)
            {
                return false;
            }
            return target.getBooleanValue();
        }
    }
    
    /**
     * Gets (as xml) the "interface" attribute
     */
    public org.eclipse.emf.x2002.ecore.EBoolean xgetInterface()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(INTERFACE$6);
            return target;
        }
    }
    
    /**
     * True if has "interface" attribute
     */
    public boolean isSetInterface()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(INTERFACE$6) != null;
        }
    }
    
    /**
     * Sets the "interface" attribute
     */
    public void setInterface(boolean xinterface)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(INTERFACE$6);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(INTERFACE$6);
            }
            target.setBooleanValue(xinterface);
        }
    }
    
    /**
     * Sets (as xml) the "interface" attribute
     */
    public void xsetInterface(org.eclipse.emf.x2002.ecore.EBoolean xinterface)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EBoolean target = null;
            target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().find_attribute_user(INTERFACE$6);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EBoolean)get_store().add_attribute_user(INTERFACE$6);
            }
            target.set(xinterface);
        }
    }
    
    /**
     * Unsets the "interface" attribute
     */
    public void unsetInterface()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(INTERFACE$6);
        }
    }
    
    /**
     * Gets the "eSuperTypes" attribute
     */
    public java.util.List getESuperTypes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ESUPERTYPES$8);
            if (target == null)
            {
                return null;
            }
            return target.getListValue();
        }
    }
    
    /**
     * Gets (as xml) the "eSuperTypes" attribute
     */
    public org.eclipse.emf.x2002.ecore.EClass.ESuperTypes xgetESuperTypes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.ESuperTypes target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.ESuperTypes)get_store().find_attribute_user(ESUPERTYPES$8);
            return target;
        }
    }
    
    /**
     * True if has "eSuperTypes" attribute
     */
    public boolean isSetESuperTypes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(ESUPERTYPES$8) != null;
        }
    }
    
    /**
     * Sets the "eSuperTypes" attribute
     */
    public void setESuperTypes(java.util.List eSuperTypes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ESUPERTYPES$8);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(ESUPERTYPES$8);
            }
            target.setListValue(eSuperTypes);
        }
    }
    
    /**
     * Sets (as xml) the "eSuperTypes" attribute
     */
    public void xsetESuperTypes(org.eclipse.emf.x2002.ecore.EClass.ESuperTypes eSuperTypes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.ESuperTypes target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.ESuperTypes)get_store().find_attribute_user(ESUPERTYPES$8);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EClass.ESuperTypes)get_store().add_attribute_user(ESUPERTYPES$8);
            }
            target.set(eSuperTypes);
        }
    }
    
    /**
     * Unsets the "eSuperTypes" attribute
     */
    public void unsetESuperTypes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(ESUPERTYPES$8);
        }
    }
    
    /**
     * Gets the "eAllAttributes" attribute
     */
    public java.util.List getEAllAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLATTRIBUTES$10);
            if (target == null)
            {
                return null;
            }
            return target.getListValue();
        }
    }
    
    /**
     * Gets (as xml) the "eAllAttributes" attribute
     */
    public org.eclipse.emf.x2002.ecore.EClass.EAllAttributes xgetEAllAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllAttributes target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllAttributes)get_store().find_attribute_user(EALLATTRIBUTES$10);
            return target;
        }
    }
    
    /**
     * True if has "eAllAttributes" attribute
     */
    public boolean isSetEAllAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(EALLATTRIBUTES$10) != null;
        }
    }
    
    /**
     * Sets the "eAllAttributes" attribute
     */
    public void setEAllAttributes(java.util.List eAllAttributes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLATTRIBUTES$10);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(EALLATTRIBUTES$10);
            }
            target.setListValue(eAllAttributes);
        }
    }
    
    /**
     * Sets (as xml) the "eAllAttributes" attribute
     */
    public void xsetEAllAttributes(org.eclipse.emf.x2002.ecore.EClass.EAllAttributes eAllAttributes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllAttributes target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllAttributes)get_store().find_attribute_user(EALLATTRIBUTES$10);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EClass.EAllAttributes)get_store().add_attribute_user(EALLATTRIBUTES$10);
            }
            target.set(eAllAttributes);
        }
    }
    
    /**
     * Unsets the "eAllAttributes" attribute
     */
    public void unsetEAllAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(EALLATTRIBUTES$10);
        }
    }
    
    /**
     * Gets the "eAllReferences" attribute
     */
    public java.util.List getEAllReferences()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLREFERENCES$12);
            if (target == null)
            {
                return null;
            }
            return target.getListValue();
        }
    }
    
    /**
     * Gets (as xml) the "eAllReferences" attribute
     */
    public org.eclipse.emf.x2002.ecore.EClass.EAllReferences xgetEAllReferences()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllReferences target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllReferences)get_store().find_attribute_user(EALLREFERENCES$12);
            return target;
        }
    }
    
    /**
     * True if has "eAllReferences" attribute
     */
    public boolean isSetEAllReferences()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(EALLREFERENCES$12) != null;
        }
    }
    
    /**
     * Sets the "eAllReferences" attribute
     */
    public void setEAllReferences(java.util.List eAllReferences)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLREFERENCES$12);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(EALLREFERENCES$12);
            }
            target.setListValue(eAllReferences);
        }
    }
    
    /**
     * Sets (as xml) the "eAllReferences" attribute
     */
    public void xsetEAllReferences(org.eclipse.emf.x2002.ecore.EClass.EAllReferences eAllReferences)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllReferences target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllReferences)get_store().find_attribute_user(EALLREFERENCES$12);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EClass.EAllReferences)get_store().add_attribute_user(EALLREFERENCES$12);
            }
            target.set(eAllReferences);
        }
    }
    
    /**
     * Unsets the "eAllReferences" attribute
     */
    public void unsetEAllReferences()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(EALLREFERENCES$12);
        }
    }
    
    /**
     * Gets the "eReferences" attribute
     */
    public java.util.List getEReferences()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EREFERENCES$14);
            if (target == null)
            {
                return null;
            }
            return target.getListValue();
        }
    }
    
    /**
     * Gets (as xml) the "eReferences" attribute
     */
    public org.eclipse.emf.x2002.ecore.EClass.EReferences xgetEReferences()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EReferences target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EReferences)get_store().find_attribute_user(EREFERENCES$14);
            return target;
        }
    }
    
    /**
     * True if has "eReferences" attribute
     */
    public boolean isSetEReferences()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(EREFERENCES$14) != null;
        }
    }
    
    /**
     * Sets the "eReferences" attribute
     */
    public void setEReferences(java.util.List eReferences)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EREFERENCES$14);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(EREFERENCES$14);
            }
            target.setListValue(eReferences);
        }
    }
    
    /**
     * Sets (as xml) the "eReferences" attribute
     */
    public void xsetEReferences(org.eclipse.emf.x2002.ecore.EClass.EReferences eReferences)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EReferences target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EReferences)get_store().find_attribute_user(EREFERENCES$14);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EClass.EReferences)get_store().add_attribute_user(EREFERENCES$14);
            }
            target.set(eReferences);
        }
    }
    
    /**
     * Unsets the "eReferences" attribute
     */
    public void unsetEReferences()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(EREFERENCES$14);
        }
    }
    
    /**
     * Gets the "eAttributes" attribute
     */
    public java.util.List getEAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EATTRIBUTES$16);
            if (target == null)
            {
                return null;
            }
            return target.getListValue();
        }
    }
    
    /**
     * Gets (as xml) the "eAttributes" attribute
     */
    public org.eclipse.emf.x2002.ecore.EClass.EAttributes xgetEAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAttributes target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAttributes)get_store().find_attribute_user(EATTRIBUTES$16);
            return target;
        }
    }
    
    /**
     * True if has "eAttributes" attribute
     */
    public boolean isSetEAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(EATTRIBUTES$16) != null;
        }
    }
    
    /**
     * Sets the "eAttributes" attribute
     */
    public void setEAttributes(java.util.List eAttributes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EATTRIBUTES$16);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(EATTRIBUTES$16);
            }
            target.setListValue(eAttributes);
        }
    }
    
    /**
     * Sets (as xml) the "eAttributes" attribute
     */
    public void xsetEAttributes(org.eclipse.emf.x2002.ecore.EClass.EAttributes eAttributes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAttributes target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAttributes)get_store().find_attribute_user(EATTRIBUTES$16);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EClass.EAttributes)get_store().add_attribute_user(EATTRIBUTES$16);
            }
            target.set(eAttributes);
        }
    }
    
    /**
     * Unsets the "eAttributes" attribute
     */
    public void unsetEAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(EATTRIBUTES$16);
        }
    }
    
    /**
     * Gets the "eAllContainments" attribute
     */
    public java.util.List getEAllContainments()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLCONTAINMENTS$18);
            if (target == null)
            {
                return null;
            }
            return target.getListValue();
        }
    }
    
    /**
     * Gets (as xml) the "eAllContainments" attribute
     */
    public org.eclipse.emf.x2002.ecore.EClass.EAllContainments xgetEAllContainments()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllContainments target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllContainments)get_store().find_attribute_user(EALLCONTAINMENTS$18);
            return target;
        }
    }
    
    /**
     * True if has "eAllContainments" attribute
     */
    public boolean isSetEAllContainments()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(EALLCONTAINMENTS$18) != null;
        }
    }
    
    /**
     * Sets the "eAllContainments" attribute
     */
    public void setEAllContainments(java.util.List eAllContainments)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLCONTAINMENTS$18);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(EALLCONTAINMENTS$18);
            }
            target.setListValue(eAllContainments);
        }
    }
    
    /**
     * Sets (as xml) the "eAllContainments" attribute
     */
    public void xsetEAllContainments(org.eclipse.emf.x2002.ecore.EClass.EAllContainments eAllContainments)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllContainments target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllContainments)get_store().find_attribute_user(EALLCONTAINMENTS$18);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EClass.EAllContainments)get_store().add_attribute_user(EALLCONTAINMENTS$18);
            }
            target.set(eAllContainments);
        }
    }
    
    /**
     * Unsets the "eAllContainments" attribute
     */
    public void unsetEAllContainments()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(EALLCONTAINMENTS$18);
        }
    }
    
    /**
     * Gets the "eAllOperations" attribute
     */
    public java.util.List getEAllOperations()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLOPERATIONS$20);
            if (target == null)
            {
                return null;
            }
            return target.getListValue();
        }
    }
    
    /**
     * Gets (as xml) the "eAllOperations" attribute
     */
    public org.eclipse.emf.x2002.ecore.EClass.EAllOperations xgetEAllOperations()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllOperations target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllOperations)get_store().find_attribute_user(EALLOPERATIONS$20);
            return target;
        }
    }
    
    /**
     * True if has "eAllOperations" attribute
     */
    public boolean isSetEAllOperations()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(EALLOPERATIONS$20) != null;
        }
    }
    
    /**
     * Sets the "eAllOperations" attribute
     */
    public void setEAllOperations(java.util.List eAllOperations)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLOPERATIONS$20);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(EALLOPERATIONS$20);
            }
            target.setListValue(eAllOperations);
        }
    }
    
    /**
     * Sets (as xml) the "eAllOperations" attribute
     */
    public void xsetEAllOperations(org.eclipse.emf.x2002.ecore.EClass.EAllOperations eAllOperations)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllOperations target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllOperations)get_store().find_attribute_user(EALLOPERATIONS$20);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EClass.EAllOperations)get_store().add_attribute_user(EALLOPERATIONS$20);
            }
            target.set(eAllOperations);
        }
    }
    
    /**
     * Unsets the "eAllOperations" attribute
     */
    public void unsetEAllOperations()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(EALLOPERATIONS$20);
        }
    }
    
    /**
     * Gets the "eAllStructuralFeatures" attribute
     */
    public java.util.List getEAllStructuralFeatures()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLSTRUCTURALFEATURES$22);
            if (target == null)
            {
                return null;
            }
            return target.getListValue();
        }
    }
    
    /**
     * Gets (as xml) the "eAllStructuralFeatures" attribute
     */
    public org.eclipse.emf.x2002.ecore.EClass.EAllStructuralFeatures xgetEAllStructuralFeatures()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllStructuralFeatures target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllStructuralFeatures)get_store().find_attribute_user(EALLSTRUCTURALFEATURES$22);
            return target;
        }
    }
    
    /**
     * True if has "eAllStructuralFeatures" attribute
     */
    public boolean isSetEAllStructuralFeatures()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(EALLSTRUCTURALFEATURES$22) != null;
        }
    }
    
    /**
     * Sets the "eAllStructuralFeatures" attribute
     */
    public void setEAllStructuralFeatures(java.util.List eAllStructuralFeatures)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLSTRUCTURALFEATURES$22);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(EALLSTRUCTURALFEATURES$22);
            }
            target.setListValue(eAllStructuralFeatures);
        }
    }
    
    /**
     * Sets (as xml) the "eAllStructuralFeatures" attribute
     */
    public void xsetEAllStructuralFeatures(org.eclipse.emf.x2002.ecore.EClass.EAllStructuralFeatures eAllStructuralFeatures)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllStructuralFeatures target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllStructuralFeatures)get_store().find_attribute_user(EALLSTRUCTURALFEATURES$22);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EClass.EAllStructuralFeatures)get_store().add_attribute_user(EALLSTRUCTURALFEATURES$22);
            }
            target.set(eAllStructuralFeatures);
        }
    }
    
    /**
     * Unsets the "eAllStructuralFeatures" attribute
     */
    public void unsetEAllStructuralFeatures()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(EALLSTRUCTURALFEATURES$22);
        }
    }
    
    /**
     * Gets the "eAllSuperTypes" attribute
     */
    public java.util.List getEAllSuperTypes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLSUPERTYPES$24);
            if (target == null)
            {
                return null;
            }
            return target.getListValue();
        }
    }
    
    /**
     * Gets (as xml) the "eAllSuperTypes" attribute
     */
    public org.eclipse.emf.x2002.ecore.EClass.EAllSuperTypes xgetEAllSuperTypes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllSuperTypes target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllSuperTypes)get_store().find_attribute_user(EALLSUPERTYPES$24);
            return target;
        }
    }
    
    /**
     * True if has "eAllSuperTypes" attribute
     */
    public boolean isSetEAllSuperTypes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(EALLSUPERTYPES$24) != null;
        }
    }
    
    /**
     * Sets the "eAllSuperTypes" attribute
     */
    public void setEAllSuperTypes(java.util.List eAllSuperTypes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EALLSUPERTYPES$24);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(EALLSUPERTYPES$24);
            }
            target.setListValue(eAllSuperTypes);
        }
    }
    
    /**
     * Sets (as xml) the "eAllSuperTypes" attribute
     */
    public void xsetEAllSuperTypes(org.eclipse.emf.x2002.ecore.EClass.EAllSuperTypes eAllSuperTypes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EClass.EAllSuperTypes target = null;
            target = (org.eclipse.emf.x2002.ecore.EClass.EAllSuperTypes)get_store().find_attribute_user(EALLSUPERTYPES$24);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EClass.EAllSuperTypes)get_store().add_attribute_user(EALLSUPERTYPES$24);
            }
            target.set(eAllSuperTypes);
        }
    }
    
    /**
     * Unsets the "eAllSuperTypes" attribute
     */
    public void unsetEAllSuperTypes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(EALLSUPERTYPES$24);
        }
    }
    
    /**
     * Gets the "eIDAttribute" attribute
     */
    public java.lang.String getEIDAttribute()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EIDATTRIBUTE$26);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "eIDAttribute" attribute
     */
    public org.apache.xmlbeans.XmlIDREF xgetEIDAttribute()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlIDREF target = null;
            target = (org.apache.xmlbeans.XmlIDREF)get_store().find_attribute_user(EIDATTRIBUTE$26);
            return target;
        }
    }
    
    /**
     * True if has "eIDAttribute" attribute
     */
    public boolean isSetEIDAttribute()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(EIDATTRIBUTE$26) != null;
        }
    }
    
    /**
     * Sets the "eIDAttribute" attribute
     */
    public void setEIDAttribute(java.lang.String eidAttribute)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(EIDATTRIBUTE$26);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(EIDATTRIBUTE$26);
            }
            target.setStringValue(eidAttribute);
        }
    }
    
    /**
     * Sets (as xml) the "eIDAttribute" attribute
     */
    public void xsetEIDAttribute(org.apache.xmlbeans.XmlIDREF eidAttribute)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlIDREF target = null;
            target = (org.apache.xmlbeans.XmlIDREF)get_store().find_attribute_user(EIDATTRIBUTE$26);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlIDREF)get_store().add_attribute_user(EIDATTRIBUTE$26);
            }
            target.set(eidAttribute);
        }
    }
    
    /**
     * Unsets the "eIDAttribute" attribute
     */
    public void unsetEIDAttribute()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(EIDATTRIBUTE$26);
        }
    }
    /**
     * An XML eSuperTypes(@).
     *
     * This is a list type whose items are org.apache.xmlbeans.XmlAnyURI.
     */
    public static class ESuperTypesImpl extends org.apache.xmlbeans.impl.values.XmlListImpl implements org.eclipse.emf.x2002.ecore.EClass.ESuperTypes
    {
        private static final long serialVersionUID = 1L;
        
        public ESuperTypesImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType, false);
        }
        
        protected ESuperTypesImpl(org.apache.xmlbeans.SchemaType sType, boolean b)
        {
            super(sType, b);
        }
    }
    /**
     * An XML eAllAttributes(@).
     *
     * This is a list type whose items are org.apache.xmlbeans.XmlAnyURI.
     */
    public static class EAllAttributesImpl extends org.apache.xmlbeans.impl.values.XmlListImpl implements org.eclipse.emf.x2002.ecore.EClass.EAllAttributes
    {
        private static final long serialVersionUID = 1L;
        
        public EAllAttributesImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType, false);
        }
        
        protected EAllAttributesImpl(org.apache.xmlbeans.SchemaType sType, boolean b)
        {
            super(sType, b);
        }
    }
    /**
     * An XML eAllReferences(@).
     *
     * This is a list type whose items are org.apache.xmlbeans.XmlAnyURI.
     */
    public static class EAllReferencesImpl extends org.apache.xmlbeans.impl.values.XmlListImpl implements org.eclipse.emf.x2002.ecore.EClass.EAllReferences
    {
        private static final long serialVersionUID = 1L;
        
        public EAllReferencesImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType, false);
        }
        
        protected EAllReferencesImpl(org.apache.xmlbeans.SchemaType sType, boolean b)
        {
            super(sType, b);
        }
    }
    /**
     * An XML eReferences(@).
     *
     * This is a list type whose items are org.apache.xmlbeans.XmlAnyURI.
     */
    public static class EReferencesImpl extends org.apache.xmlbeans.impl.values.XmlListImpl implements org.eclipse.emf.x2002.ecore.EClass.EReferences
    {
        private static final long serialVersionUID = 1L;
        
        public EReferencesImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType, false);
        }
        
        protected EReferencesImpl(org.apache.xmlbeans.SchemaType sType, boolean b)
        {
            super(sType, b);
        }
    }
    /**
     * An XML eAttributes(@).
     *
     * This is a list type whose items are org.apache.xmlbeans.XmlAnyURI.
     */
    public static class EAttributesImpl extends org.apache.xmlbeans.impl.values.XmlListImpl implements org.eclipse.emf.x2002.ecore.EClass.EAttributes
    {
        private static final long serialVersionUID = 1L;
        
        public EAttributesImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType, false);
        }
        
        protected EAttributesImpl(org.apache.xmlbeans.SchemaType sType, boolean b)
        {
            super(sType, b);
        }
    }
    /**
     * An XML eAllContainments(@).
     *
     * This is a list type whose items are org.apache.xmlbeans.XmlAnyURI.
     */
    public static class EAllContainmentsImpl extends org.apache.xmlbeans.impl.values.XmlListImpl implements org.eclipse.emf.x2002.ecore.EClass.EAllContainments
    {
        private static final long serialVersionUID = 1L;
        
        public EAllContainmentsImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType, false);
        }
        
        protected EAllContainmentsImpl(org.apache.xmlbeans.SchemaType sType, boolean b)
        {
            super(sType, b);
        }
    }
    /**
     * An XML eAllOperations(@).
     *
     * This is a list type whose items are org.apache.xmlbeans.XmlAnyURI.
     */
    public static class EAllOperationsImpl extends org.apache.xmlbeans.impl.values.XmlListImpl implements org.eclipse.emf.x2002.ecore.EClass.EAllOperations
    {
        private static final long serialVersionUID = 1L;
        
        public EAllOperationsImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType, false);
        }
        
        protected EAllOperationsImpl(org.apache.xmlbeans.SchemaType sType, boolean b)
        {
            super(sType, b);
        }
    }
    /**
     * An XML eAllStructuralFeatures(@).
     *
     * This is a list type whose items are org.apache.xmlbeans.XmlAnyURI.
     */
    public static class EAllStructuralFeaturesImpl extends org.apache.xmlbeans.impl.values.XmlListImpl implements org.eclipse.emf.x2002.ecore.EClass.EAllStructuralFeatures
    {
        private static final long serialVersionUID = 1L;
        
        public EAllStructuralFeaturesImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType, false);
        }
        
        protected EAllStructuralFeaturesImpl(org.apache.xmlbeans.SchemaType sType, boolean b)
        {
            super(sType, b);
        }
    }
    /**
     * An XML eAllSuperTypes(@).
     *
     * This is a list type whose items are org.apache.xmlbeans.XmlAnyURI.
     */
    public static class EAllSuperTypesImpl extends org.apache.xmlbeans.impl.values.XmlListImpl implements org.eclipse.emf.x2002.ecore.EClass.EAllSuperTypes
    {
        private static final long serialVersionUID = 1L;
        
        public EAllSuperTypesImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType, false);
        }
        
        protected EAllSuperTypesImpl(org.apache.xmlbeans.SchemaType sType, boolean b)
        {
            super(sType, b);
        }
    }
}
